home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / office_files.nasl < prev    next >
Text File  |  2005-01-14  |  3KB  |  126 lines

  1. # Written by Renaud Deraison <deraison@nessus.org>
  2. #
  3. #
  4. # This plugin uses the data collected by webmirror to display the list
  5. # of files that may not be suitable to be distributed over the web as
  6. # they may be used for intelligence purposes.
  7.  
  8.  
  9. if(description)
  10. {
  11.  script_id(11419);
  12.  script_version ("$Revision: 1.7 $");
  13.  
  14.  name["english"] = "Office files list";
  15.  script_name(english:name["english"]);
  16.  
  17.  desc["english"] = "
  18. This script displays the list of .xls, .ppt, .doc and .pdf files that
  19. are available on the remote server.
  20.  
  21. Distributing such files over the web can be done, but the webmaster
  22. should make sure that they contain no confidential data.";
  23.  
  24.  
  25.  script_description(english:desc["english"]);
  26.  
  27.  summary["english"] = "Displays office files";
  28.  
  29.  
  30.  script_summary(english:summary["english"]);
  31.  
  32.  script_category(ACT_GATHER_INFO);
  33.  
  34.  
  35.  script_copyright(english:"This script is Copyright (C) 2003 Renaud Deraison",
  36.         francais:"Ce script est Copyright (C) 2003 Renaud Deraison");
  37.  family["english"] = "Remote file access";
  38.  family["francais"] = "AccΦs aux fichiers distants";
  39.  script_family(english:family["english"], francais:family["francais"]);
  40.  script_dependencie("find_service.nes", "httpver.nasl", "webmirror.nasl", "no404.nasl");
  41.  script_require_ports("Services/www", 80);
  42.  exit(0);
  43. }
  44.  
  45.  
  46. include("http_func.inc");
  47. include("http_keepalive.inc");
  48.  
  49.  
  50. function test_files(files)
  51. {
  52.  local_var f, req, soc, r, retf;
  53.  
  54.  retf = make_list();
  55.  foreach f (files)
  56.  {
  57.   req = http_get(item:f, port:port);
  58.   soc = http_open_socket(port);
  59.  
  60.   if(!soc)exit(0);
  61.   
  62.   send(socket:soc, data:req);
  63.   r  = recv_line(socket:soc, length:4096);
  64.   close(soc);
  65.   if(ereg(pattern:"^HTTP/[0-9]\.[0-9] 200 .*", string:r)){
  66.       retf = make_list(retf, f);
  67.     }
  68.  }
  69.  return retf;
  70. }
  71.  
  72.  
  73. port = get_http_port(default:80);
  74.  
  75.  
  76. if(!get_port_state(port))exit(0);
  77.  
  78. report = "";
  79.  
  80. software["doc"] = "Word";
  81. software["wri"] = "Write";
  82. software["xls"] = "Excel";
  83. software["ppt"] = "PowerPoint";
  84. software["csv"] = "spreadsheet";
  85. software["dif"] = "spreadsheet";
  86. software["rtf"] = "word processor";
  87. software["pdf"] = "Acrobat";
  88. software["sxw"] = "OO Writer";
  89. software["sxi"] = "00 Presentation";
  90. software["sxc"] = "00 Spreadsheet";
  91. software["sdw"] = "StarWriter";
  92. software["sdd"] = "StarImpress";
  93. software["sdc"] = "StarCalc";
  94.  
  95. foreach ext(keys(software))
  96. {
  97.  t = get_kb_list(string("www/", port, "/content/extensions/", ext));
  98. if(!isnull(t)){
  99.  t = test_files(files:make_list(t));
  100.  word = NULL;
  101.  foreach f (t)
  102.  {
  103.   word += '   ' + f + '\n';
  104.  }
  105.  if(word)
  106.   report += 'The following ' + software[ext] + ' files (.' + ext + ') are available on the remote server : \n' + word;
  107.  }
  108. }
  109.  
  110. if (report)
  111. {
  112.  report += '
  113.  
  114. You should make sure that none of these files contain confidential or
  115. otherwise sensitive information.
  116.  
  117. An attacker may use these files to gain a more intimate knowledge of
  118. your organization and eventually use them do perform social engineering
  119. attacks (abusing the trust of the personnel of your company).
  120.  
  121. Solution : sensitive files should not be accessible by everyone, but only
  122. by authenticated users.';
  123.  
  124.  security_note(port:port, data:report);
  125. }
  126.